package model;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Date;

/**
 * 
 * @author Tom Regelink
 * 
 */
public class Meting implements Serializable {

	private static final long serialVersionUID = 1L;
	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
			this);
	private int station_id;
	private Date datum;
	private int windrichting;
	private int gemWindsnelheid;
	private int maxWindsnelheid;
	private int minWindsnelheid;
	private int gemTemperatuur;
	private int maxTemperatuur;
	private int minTemperatuur;
	private int minTemperatuur10;
	private int gemLuchtdruk;
	private int maxLuchtdruk;
	private int minLuchtdruk;
	private int duurNeerslag;
	private int somNeerslag;

	/**
	 * Default Constructor
	 * 
	 * @param station_id
	 * @param datum
	 * @param windrichting
	 * @param gemWindsnelheid
	 * @param maxWindsnelheid
	 * @param minWindsnelheid
	 * @param gemTemperatuur
	 * @param maxTemperatuur
	 * @param minTemperatuur
	 * @param minTemperatuur10
	 * @param gemLuchtdruk
	 * @param maxLuchtdruk
	 * @param minLuchtdruk
	 * @param duurNeerslag
	 * @param somNeerslag
	 */
	public Meting(int station_id, Date datum, int windrichting,
			int gemWindsnelheid, int maxWindsnelheid, int minWindsnelheid,
			int gemTemperatuur, int maxTemperatuur, int minTemperatuur,
			int minTemperatuur10, int gemLuchtdruk, int maxLuchtdruk,
			int minLuchtdruk, int duurNeerslag, int somNeerslag) {

		this.station_id = station_id;
		this.datum = datum;
		this.windrichting = windrichting;
		this.gemWindsnelheid = gemWindsnelheid;
		this.maxWindsnelheid = maxWindsnelheid;
		this.minWindsnelheid = minWindsnelheid;
		this.gemTemperatuur = gemTemperatuur;
		this.maxTemperatuur = maxTemperatuur;
		this.minTemperatuur = minTemperatuur;
		this.minTemperatuur10 = minTemperatuur10;
		this.gemLuchtdruk = gemLuchtdruk;
		this.maxLuchtdruk = maxLuchtdruk;
		this.minLuchtdruk = minLuchtdruk;
		this.duurNeerslag = duurNeerslag;
		this.somNeerslag = somNeerslag;
	}

	/****************************************************************************************/
	/* GETTERS AND SETTERS */
	/****************************************************************************************/

	public Date getDatum() {
		return datum;
	}

	public void setDatum(java.sql.Date datum) {
		Date oudeDatum = this.datum;
		this.datum = datum;
		changeSupport.firePropertyChange("datum", oudeDatum, this.datum);
	}

	public int getDuurNeerslag() {
		return duurNeerslag;
	}

	public void setDuurNeerslag(int duurNeerslag) {
		int oudeNeerslag = this.duurNeerslag;
		this.duurNeerslag = duurNeerslag;
		changeSupport.firePropertyChange("duurNeerslag", oudeNeerslag,
				this.duurNeerslag);
	}

	public int getGemLuchtdruk() {
		return gemLuchtdruk;
	}

	public void setGemLuchtdruk(int gemLuchtdruk) {
		int oudegemLucht = this.gemLuchtdruk;
		this.gemLuchtdruk = gemLuchtdruk;
		changeSupport.firePropertyChange("gemLuchtdruk", oudegemLucht,
				this.gemLuchtdruk);
	}

	public int getGemTemperatuur() {
		return gemTemperatuur;
	}

	public void setGemTemperatuur(int gemTemperatuur) {
		int oudeTemp = this.gemTemperatuur;
		this.gemTemperatuur = gemTemperatuur;
		changeSupport.firePropertyChange("gemTemperatuur", oudeTemp,
				this.gemTemperatuur);
	}

	public int getGemWindsnelheid() {
		return gemWindsnelheid;
	}

	public int getMaxLuchtdruk() {
		return maxLuchtdruk;
	}

	public void setMaxLuchtdruk(int maxLuchtdruk) {
		int oldValue = this.maxLuchtdruk;
		this.maxLuchtdruk = maxLuchtdruk;
		changeSupport.firePropertyChange("maxLuchtdruk", oldValue,
				this.maxLuchtdruk);
	}

	public int getMaxTemperatuur() {
		return maxTemperatuur;
	}

	public void setMaxTemperatuur(int maxTemperatuur) {
		int oldValue = this.maxTemperatuur;
		this.maxTemperatuur = maxTemperatuur;
		changeSupport.firePropertyChange("maxTemperatuur", oldValue,
				this.maxTemperatuur);
	}

	public int getMaxWindsnelheid() {
		return maxWindsnelheid;
	}

	public void setMaxWindsnelheid(int maxWindsnelheid) {
		int oldValue = this.maxWindsnelheid;
		this.maxWindsnelheid = maxWindsnelheid;
		changeSupport.firePropertyChange("maxWindsnelheid", oldValue,
				this.maxWindsnelheid);
	}

	public int getMinLuchtdruk() {
		return minLuchtdruk;
	}

	public void setMinLuchtdruk(int minLuchtdruk) {
		int oldValue = this.minLuchtdruk;
		this.minLuchtdruk = minLuchtdruk;
		changeSupport.firePropertyChange("minLuchtdruk", oldValue,
				this.minLuchtdruk);
	}

	public int getMinTemperatuur() {
		return minTemperatuur;
	}

	public void setMinTemperatuur(int minTemperatuur) {
		int oldValue = this.minTemperatuur;
		this.minTemperatuur = minTemperatuur;
		changeSupport.firePropertyChange("minTemperatuur", oldValue,
				this.minTemperatuur);
	}

	public int getMinTemperatuur10() {
		return minTemperatuur10;
	}

	public void setMinTemperatuur10(int minTemperatuur10) {
		int oldValue = this.minTemperatuur10;
		this.minTemperatuur10 = minTemperatuur10;
		changeSupport.firePropertyChange("minTemperatuur10", oldValue,
				this.minTemperatuur10);
	}

	public int getMinWindsnelheid() {
		return minWindsnelheid;
	}

	public void setMinWindsnelheid(int minWindsnelheid) {
		int oldValue = this.minWindsnelheid;
		this.minWindsnelheid = minWindsnelheid;
		changeSupport.firePropertyChange("minWindsnelheid", oldValue,
				this.minWindsnelheid);
	}

	public int getSomNeerslag() {
		return somNeerslag;
	}

	public void setSomNeerslag(int somNeerslag) {
		int oldValue = this.somNeerslag;
		this.somNeerslag = somNeerslag;
		changeSupport.firePropertyChange("somNeerslag", oldValue,
				this.somNeerslag);
	}

	public int getStation_id() {
		return station_id;
	}

	public void setStation_id(int station_id) {
		int oldValue = this.station_id;
		this.station_id = station_id;
		changeSupport.firePropertyChange("station_id", oldValue,
				this.station_id);
	}

	public int getWindrichting() {
		return windrichting;
	}

	public void setWindrichting(int windrichting) {
		int oldValue = this.windrichting;
		this.windrichting = windrichting;
		changeSupport.firePropertyChange("windrichting", oldValue,
				this.windrichting);
	}

	/* PropertyChangeListener */

	public void addPropertyChangeListener(PropertyChangeListener listener) {
		changeSupport.addPropertyChangeListener(listener);
	}

	public void removePropertyChangeListener(PropertyChangeListener listener) {
		changeSupport.removePropertyChangeListener(listener);
	}
}
